// 存放共用的js 函数
import ArticleApiRequest from "@/api/ArticleApiRequest";
const articleApi = new ArticleApiRequest();

export default class myUtils {

    // 上传 文章图片
    uploadImageFile(param) {
        const fileName = param.file.name;
        const fileSize = param.file.size;
        const file = param.file;
        // 检查类型 和 大小
        if (!this.checkType(fileName) || !this.checkSize(fileSize)) {
            return;
        }

        // console.log(file);
        this.uploadDisable = true;
        const formData = new FormData();
        formData.append("articleImage", file);
        articleApi.uploadArticleImageFile(formData).then((res) => {
            // 获取返回的url路径 放到表单中的背景图属性中
            return res;
        });
    }


    // markdown 上传图片
    markDownImgAdd(pos, $file) {
        if (!this.checkType($file._name) || !this.checkSize($file.size)) {
            return;
        }
        const formData = new FormData();
        formData.append("markdownImage", $file);
        //发送请求
        articleApi.uploadMarkdownImageFile(formData).then((res) => {
            // 第二步.将返回的url替换到文本原位置![...](0) -> ![...](url)
            //通过$refs获取: html声明ref : <mavon-editor ref=md ></mavon-editor>， 此时$vm为 this.$refs.md`
            return res;

        });
    }

    // 检查图片类型
    checkType(fileName) {
        // 检查类型
        let fileType = fileName.substring(fileName.lastIndexOf(".") + 1);

        if (fileType !== "jpg" && fileType !== "jpeg" && fileType !== "png") {
            return false;
        }

        return true;
    }
    // 检查图片大小
    checkSize(size) {
        if (size / 1024 / 1024 > 1.5) {
            return false;
        }
        return true;
    }


    // 判断两个对象数据是否相同, 如果有嵌套则不能判断
    isObjectChanged(source, comparison) {
        const _source = JSON.stringify(source)
        const _comparison = JSON.stringify({ ...source, ...comparison })
        return _source === _comparison
    }

}